package hcn.protocol.ods.paymentXML;

import lombok.*;

import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;

/**
 * @Author:FangZhiyi
 * @Description
 * @Data Created in 2020/11/6 17:43
 * @Moddified By:
 */
@XmlRootElement(name = "MsgBody")
public class OutpatientExpensesListXMLReq implements Serializable {
    /*机构id*/
    private String VisitOrganization;
//    /*查询类型，参数设置，1表示按患者患者标识集合查询；2表示按证件集合查询；3表示按诊疗卡集合查询；默认是1*/
//    private int OutpatientType;
    /*开始日期(yyyy-MM-dd HH:mm:ss)*/
    private String SettleBeginDateTime;
    /*截止日期(yyyy-MM-dd HH:mm:ss)*/
    private String SettleEndDateTime;
    /*查询类型，参数设置，1表示按患者患者标识集合查询；2表示按证件集合查询；3表示按诊疗卡集合查询；默认是1*/
    private int QueryType;
    /*证件集合，包含：证件类型和证件号码*/
    private List<IdCard> IdCardLists;
    /*诊疗卡集合，包含：诊疗卡类型和诊疗卡号码*/
    private List<MedicalCard> MedicalCardIdLists;
    /*患者标识集合，包括患者编号*/
    private List<SourcePatientId> SourcePatientIdLists;

    private Integer PageNo=1;
    private Integer PageSize=1;

    @XmlElement(name = "VisitOrganization")
    public String getVisitOrganization() {
        return VisitOrganization;
    }

    public void setVisitOrganization(String visitOrganization) {
        VisitOrganization = visitOrganization;
    }

//    @XmlElement(name = "OutpatientType")
//    public int getOutpatientType() {
//        return OutpatientType;
//    }
//
//    public void setOutpatientType(int outpatientType) {
//        OutpatientType = outpatientType;
//    }

    @XmlElement(name = "SettleBeginDateTime")
    public String getSettleBeginDateTime() {
        return SettleBeginDateTime;
    }

    public void setSettleBeginDateTime(String settleBeginDateTime) {
        SettleBeginDateTime = settleBeginDateTime;
    }

    @XmlElement(name = "SettleEndDateTime")
    public String getSettleEndDateTime() {
        return SettleEndDateTime;
    }

    public void setSettleEndDateTime(String settleEndDateTime) {
        SettleEndDateTime = settleEndDateTime;
    }

    @XmlElement(name = "QueryType")
    public int getQueryType() {
        return QueryType;
    }

    public void setQueryType(int queryType) {
        QueryType = queryType;
    }

    @XmlElementWrapper(name = "IdCardLists")
    @XmlElement(name = "IdCardList")
    public List<IdCard> getIdCardLists() {
        return IdCardLists;
    }


    public void setIdCardLists(List<IdCard> idCardLists) {
        IdCardLists = idCardLists;
    }

    @XmlElementWrapper(name = "MedicalCardIdLists")
    @XmlElement(name = "MedicalCardIdList")
    public List<MedicalCard> getMedicalCardIdLists() {
        return MedicalCardIdLists;
    }

    public void setMedicalCardIdLists(List<MedicalCard> medicalCardIdLists) {
        MedicalCardIdLists = medicalCardIdLists;
    }

    @XmlElementWrapper(name = "SourcePatientIdLists")
    @XmlElement(name = "SourcePatientIdList")
    public List<SourcePatientId> getSourcePatientIdLists() {
        return SourcePatientIdLists;
    }

    public void setSourcePatientIdLists(List<SourcePatientId> sourcePatientIdLists) {
        SourcePatientIdLists = sourcePatientIdLists;
    }

    @XmlElement(name = "PageNo")
    public Integer getPageNo() {
        return PageNo;
    }

    public void setPageNo(Integer pageNo) {
        PageNo = pageNo;
    }

    @XmlElement(name = "PageSize")
    public Integer getPageSize() {
        return PageSize;
    }

    public void setPageSize(Integer pageSize) {
        PageSize = pageSize;
    }

    @XmlRootElement(name = "IdCardList")
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class IdCard{
        /*证件类型 参照字典CV02_01_101*/
        private String IdCardCode;
        /*证件号码*/
        private String IdCard;

        public String getIdCardCode() {
            return IdCardCode;
        }

        public void setIdCardCode(String idCardCode) {
            IdCardCode = idCardCode;
        }

        public String getIdCard() {
            return IdCard;
        }

        public void setIdCard(String idCard) {
            IdCard = idCard;
        }
    }

    @XmlRootElement(name = "MedicalCardIdList")
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class MedicalCard{
        /*诊疗卡类型，参照字典CVX_CardType*/
        private String MedicalCardType;
        /*诊疗卡号码*/
        private String MedicalCardId;

        public String getMedicalCardType() {
            return MedicalCardType;
        }

        public void setMedicalCardType(String medicalCardType) {
            MedicalCardType = medicalCardType;
        }

        public String getMedicalCardId() {
            return MedicalCardId;
        }

        public void setMedicalCardId(String medicalCardId) {
            MedicalCardId = medicalCardId;
        }
    }
    @XmlRootElement(name = "SourcePatientIdList")
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class SourcePatientId{
        /*患者在 his 中的唯一标识*/
        private String SourcePatientId;

        public String getSourcePatientId() {
            return SourcePatientId;
        }

        public void setSourcePatientId(String sourcePatientId) {
            SourcePatientId = sourcePatientId;
        }
    }
}
